package com.future.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.future.domain.DTO.PermissionDTO;
import com.future.domain.Permission;
import com.future.domain.Result;

import java.util.List;

public interface IPermissionService extends IService<Permission> {
    /**
     * 查询所有权限
     * @return 统一响应结果，包含权限列表
     */
    Result listPermissions();

    /**
     * 根据 ID 查询权限
     * @param id 权限 ID
     * @return 统一响应结果，包含权限信息
     */
    Result getPermissionById(Long id);

    /**
     * 新增权限
     * @param permissionDTO 权限信息
     * @return 统一响应结果，包含操作结果
     */
    Result savePermission(PermissionDTO permissionDTO);

    /**
     * 更新权限
     * @param permissionDTO 权限信息
     * @return 统一响应结果，包含操作结果
     */
    Result updatePermission(PermissionDTO permissionDTO);

    /**
     * 根据 ID 删除权限
     * @param id 权限 ID
     * @return 统一响应结果，包含操作结果
     */
    Result deletePermission(Long id);

    /**
     * 分页查询权限
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 统一响应结果，包含分页权限信息
     */
    Result pagePermissions(Integer pageNum, Integer pageSize);

    /**
     * 根据权限名称查询权限
     * @param permissionName 权限名称
     * @return 统一响应结果，包含权限列表
     */
    Result searchPermissions(String permissionName);
}
